/* 
 * File:   ServerPid.h
 * Author: dell
 *
 * Created on 2012年4月5日, 下午1:23
 */

#ifndef SERVERPID_H
#define	SERVERPID_H

#include <unistd.h>
#include <vector>
#include <string>

#include "common.h"


//#include <evhttp/EvNIOReader.h>
//#include <evhttp/EvNIOWriter.h>

namespace Rapid{
    class ServerPid{
    public:
        ServerPid(const char* homeDir, int port);
        /** 完整路径 */
        ServerPid(const char* serverPidFilename);
        virtual ~ServerPid();

        /** 返回从server.pid文件中读出的pid */
        pid_t read();

        /** 将pid追加到server.pid文件 */
        bool append(pid_t pid);

        /** 将文件及内容清除 */
        bool remove();

        /** 检查server.pid文件是否存在 */
        bool existFile();
        
        /** 检查进程是否存在 */
        bool existProcess();
        
        const char* getServerPidFilename(){
            return serverPidFilename.c_str();
        }
        
    private:
//        //打开文件
//        bool open(int flags);
        
    private:
//        std::vector<pid_t> pids;
//        std::string serverPidDir;
//        std::string port;
        std::string serverPidFilename;
    };
}
#endif	/* SERVERPID_H */

